   1              		.syntax unified
   2              		.cpu cortex-m3
   3              		.fpu softvfp
   4              		.eabi_attribute 20, 1
   5              		.eabi_attribute 21, 1
   6              		.eabi_attribute 23, 3
   7              		.eabi_attribute 24, 1
   8              		.eabi_attribute 25, 1
   9              		.eabi_attribute 26, 1
  10              		.eabi_attribute 30, 4
  11              		.eabi_attribute 34, 1
  12              		.eabi_attribute 18, 4
  13              		.thumb
  14              		.syntax unified
  15              		.file	"max7219_dot_matrix.c"
  16              		.text
  17              	.Ltext0:
  18              		.cfi_sections	.debug_frame
  19              		.section	.text.max7219_Write,"ax",%progbits
  20              		.align	1
  21              		.thumb
  22              		.thumb_func
  24              	max7219_Write:
  25              	.LFB0:
  26              		.file 1 "uc_libc_dev/driver/max7219_dot_matrix.c"
   1:uc_libc_dev/driver/max7219_dot_matrix.c **** #include "max7219_dot_matrix.h"
   2:uc_libc_dev/driver/max7219_dot_matrix.c **** 
   3:uc_libc_dev/driver/max7219_dot_matrix.c **** // the registers for the MAX7221 and MAX7219
   4:uc_libc_dev/driver/max7219_dot_matrix.c **** #define REG_DECODE        0x09                        // "decode mode" register
   5:uc_libc_dev/driver/max7219_dot_matrix.c **** #define REG_INTENSITY     0x0a                        // "intensity" register
   6:uc_libc_dev/driver/max7219_dot_matrix.c **** #define REG_SCAN_LIMIT    0x0b                        // "scan limit" register
   7:uc_libc_dev/driver/max7219_dot_matrix.c **** #define REG_SHUTDOWN      0x0c                        // "shutdown" register
   8:uc_libc_dev/driver/max7219_dot_matrix.c **** #define REG_DISPLAY_TEST  0x0f                        // "display test" register
   9:uc_libc_dev/driver/max7219_dot_matrix.c **** 
  10:uc_libc_dev/driver/max7219_dot_matrix.c **** static u8 moduleDisp[64];
  11:uc_libc_dev/driver/max7219_dot_matrix.c **** static u8 maxDevices;
  12:uc_libc_dev/driver/max7219_dot_matrix.c **** static u8 spidata[16];
  13:uc_libc_dev/driver/max7219_dot_matrix.c **** 
  14:uc_libc_dev/driver/max7219_dot_matrix.c **** static void max7219_Write (uint addr, u8 reg_number, u8 dataout) {
  27              		.loc 1 14 0
  28              		.cfi_startproc
  29              		@ args = 0, pretend = 0, frame = 0
  30              		@ frame_needed = 0, uses_anonymous_args = 0
  31              	.LVL0:
  32 0000 F8B5     		push	{r3, r4, r5, r6, r7, lr}
  33              	.LCFI0:
  34              		.cfi_def_cfa_offset 24
  35              		.cfi_offset 3, -24
  36              		.cfi_offset 4, -20
  37              		.cfi_offset 5, -16
  38              		.cfi_offset 6, -12
  39              		.cfi_offset 7, -8
  40              		.cfi_offset 14, -4
  15:uc_libc_dev/driver/max7219_dot_matrix.c ****     //Create an array with the data to shift out
  16:uc_libc_dev/driver/max7219_dot_matrix.c ****     int offset=addr*2;
  17:uc_libc_dev/driver/max7219_dot_matrix.c ****     int maxbytes=maxDevices*2;
  41              		.loc 1 17 0
  42 0002 104B     		ldr	r3, .L9
  43 0004 104F     		ldr	r7, .L9+4
  44 0006 1C78     		ldrb	r4, [r3]	@ zero_extendqisi2
  18:uc_libc_dev/driver/max7219_dot_matrix.c ****     int i; for(i=0;i<maxbytes;i++) spidata[i]=0;
  45              		.loc 1 18 0
  46 0008 0023     		movs	r3, #0
  47 000a 9E46     		mov	lr, r3
  16:uc_libc_dev/driver/max7219_dot_matrix.c ****     int maxbytes=maxDevices*2;
  48              		.loc 1 16 0
  49 000c 4600     		lsls	r6, r0, #1
  50              	.LVL1:
  17:uc_libc_dev/driver/max7219_dot_matrix.c ****     int i; for(i=0;i<maxbytes;i++) spidata[i]=0;
  51              		.loc 1 17 0
  52 000e 6400     		lsls	r4, r4, #1
  53              	.LVL2:
  54              	.L2:
  55              		.loc 1 18 0 discriminator 1
  56 0010 A342     		cmp	r3, r4
  57 0012 0D4D     		ldr	r5, .L9+4
  58 0014 03D0     		beq	.L7
  59              		.loc 1 18 0 is_stmt 0 discriminator 3
  60 0016 07F803E0 		strb	lr, [r7, r3]
  61 001a 0133     		adds	r3, r3, #1
  62              	.LVL3:
  63 001c F8E7     		b	.L2
  64              	.L7:
  19:uc_libc_dev/driver/max7219_dot_matrix.c ****     //put our device data into the array
  20:uc_libc_dev/driver/max7219_dot_matrix.c ****     spidata[offset+1] = reg_number;
  65              		.loc 1 20 0 is_stmt 1
  66 001e AB19     		adds	r3, r5, r6
  67              	.LVL4:
  68 0020 5970     		strb	r1, [r3, #1]
  21:uc_libc_dev/driver/max7219_dot_matrix.c ****     spidata[offset] = dataout;
  22:uc_libc_dev/driver/max7219_dot_matrix.c **** 
  23:uc_libc_dev/driver/max7219_dot_matrix.c ****     max7219_Enable();
  69              		.loc 1 23 0
  70 0022 0A4B     		ldr	r3, .L9+8
  21:uc_libc_dev/driver/max7219_dot_matrix.c ****     spidata[offset] = dataout;
  71              		.loc 1 21 0
  72 0024 05F81020 		strb	r2, [r5, r0, lsl #1]
  73              		.loc 1 23 0
  74 0028 4FF48022 		mov	r2, #262144
  75              	.LVL5:
  76 002c 1A60     		str	r2, [r3]
  77              	.LVL6:
  78              	.L4:
  24:uc_libc_dev/driver/max7219_dot_matrix.c ****     for(i=maxbytes;i>0;i--)
  79              		.loc 1 24 0 discriminator 1
  80 002e 24B1     		cbz	r4, .L8
  25:uc_libc_dev/driver/max7219_dot_matrix.c ****     	max7219_TransferByte(spidata[i-1]); // write register number to MAX7219
  81              		.loc 1 25 0 discriminator 3
  82 0030 013C     		subs	r4, r4, #1
  83              	.LVL7:
  84 0032 285D     		ldrb	r0, [r5, r4]	@ zero_extendqisi2
  85 0034 FFF7FEFF 		bl	ssp1_TransferByte
  86              	.LVL8:
  87 0038 F9E7     		b	.L4
  88              	.L8:
  26:uc_libc_dev/driver/max7219_dot_matrix.c ****   	max7219_Disable();
  89              		.loc 1 26 0
  90 003a 054B     		ldr	r3, .L9+12
  91 003c 4FF48022 		mov	r2, #262144
  92 0040 1A60     		str	r2, [r3]
  93 0042 F8BD     		pop	{r3, r4, r5, r6, r7, pc}
  94              	.LVL9:
  95              	.L10:
  96              		.align	2
  97              	.L9:
  98 0044 00000000 		.word	.LANCHOR0
  99 0048 00000000 		.word	.LANCHOR1
 100 004c 1CC00920 		.word	537509916
 101 0050 18C00920 		.word	537509912
 102              		.cfi_endproc
 103              	.LFE0:
 105              		.section	.text.max7219_SetScanLimit,"ax",%progbits
 106              		.align	1
 107              		.global	max7219_SetScanLimit
 108              		.thumb
 109              		.thumb_func
 111              	max7219_SetScanLimit:
 112              	.LFB2:
  27:uc_libc_dev/driver/max7219_dot_matrix.c **** }
  28:uc_libc_dev/driver/max7219_dot_matrix.c **** 
  29:uc_libc_dev/driver/max7219_dot_matrix.c **** //-------------------------------------------------------------------------------------------------
  30:uc_libc_dev/driver/max7219_dot_matrix.c **** // Descrição:	Inicializa pinos do controlador e o driver controlador
  31:uc_libc_dev/driver/max7219_dot_matrix.c **** //				O acesso é feito via barramento SPI no modo padrão com velocidade máxima de 10MHz
  32:uc_libc_dev/driver/max7219_dot_matrix.c **** // Parametros	nModule: Quantidade de módulos em cascata deve ser gerencido
  33:uc_libc_dev/driver/max7219_dot_matrix.c **** // Retorna: 	Nada
  34:uc_libc_dev/driver/max7219_dot_matrix.c **** //-------------------------------------------------------------------------------------------------
  35:uc_libc_dev/driver/max7219_dot_matrix.c **** int max7219_Init(uint nDevices) {
  36:uc_libc_dev/driver/max7219_dot_matrix.c **** 	if ( (nDevices < 1) || (nDevices > 8)) return errDEVICE_INVALID;
  37:uc_libc_dev/driver/max7219_dot_matrix.c **** 	maxDevices = nDevices;
  38:uc_libc_dev/driver/max7219_dot_matrix.c **** 	max7219_SetupPorts();	// Configurar os pinos de controle
  39:uc_libc_dev/driver/max7219_dot_matrix.c **** 
  40:uc_libc_dev/driver/max7219_dot_matrix.c **** 	int x; for(x=0;x<64;x++) moduleDisp[x] = 0;
  41:uc_libc_dev/driver/max7219_dot_matrix.c **** 	for(x=0;x<maxDevices;x++) {
  42:uc_libc_dev/driver/max7219_dot_matrix.c **** 		max7219_Write(x, REG_DISPLAY_TEST, 0);              // Wtihout test
  43:uc_libc_dev/driver/max7219_dot_matrix.c **** 		max7219_SetScanLimit(x,7);							// Scanlimit is set to max on startup
  44:uc_libc_dev/driver/max7219_dot_matrix.c **** 		max7219_Write(x, REG_DECODE, 0x00);                 // set to "no decode" for all digits
  45:uc_libc_dev/driver/max7219_dot_matrix.c **** 		max7219_Shutdown(x, pdFALSE);                       // select normal operation (i.e. not shutdown
  46:uc_libc_dev/driver/max7219_dot_matrix.c **** 		max7219_DisplayTest(x, pdFALSE);                    // select normal operation (i.e. not test mod
  47:uc_libc_dev/driver/max7219_dot_matrix.c **** 		max7219_Clear(x);                                   // clear all digits
  48:uc_libc_dev/driver/max7219_dot_matrix.c **** 		max7219_SetBrightness(x, max7219_INTENSITY_MAX);    // set to maximum intensity
  49:uc_libc_dev/driver/max7219_dot_matrix.c **** 	}
  50:uc_libc_dev/driver/max7219_dot_matrix.c **** 
  51:uc_libc_dev/driver/max7219_dot_matrix.c ****   	return pdPASS;
  52:uc_libc_dev/driver/max7219_dot_matrix.c **** }
  53:uc_libc_dev/driver/max7219_dot_matrix.c **** 
  54:uc_libc_dev/driver/max7219_dot_matrix.c **** int max7219_SetScanLimit(uint addr, uint limit) {
 113              		.loc 1 54 0
 114              		.cfi_startproc
 115              		@ args = 0, pretend = 0, frame = 0
 116              		@ frame_needed = 0, uses_anonymous_args = 0
 117              	.LVL10:
 118 0000 08B5     		push	{r3, lr}
 119              	.LCFI1:
 120              		.cfi_def_cfa_offset 8
 121              		.cfi_offset 3, -8
 122              		.cfi_offset 14, -4
  55:uc_libc_dev/driver/max7219_dot_matrix.c ****     if (addr>=maxDevices) return errDEVICE_INVALID;
 123              		.loc 1 55 0
 124 0002 084B     		ldr	r3, .L15
 125 0004 1B78     		ldrb	r3, [r3]	@ zero_extendqisi2
 126 0006 8342     		cmp	r3, r0
 127 0008 07D9     		bls	.L13
  56:uc_libc_dev/driver/max7219_dot_matrix.c ****     if (limit>7) return errDEVICE_VALUE_OUT_OF_RANGE;
 128              		.loc 1 56 0
 129 000a 0729     		cmp	r1, #7
 130 000c 08D8     		bhi	.L14
  57:uc_libc_dev/driver/max7219_dot_matrix.c ****    	max7219_Write(addr, REG_SCAN_LIMIT, limit);
 131              		.loc 1 57 0
 132 000e CAB2     		uxtb	r2, r1
 133 0010 0B21     		movs	r1, #11
 134              	.LVL11:
 135 0012 FFF7FEFF 		bl	max7219_Write
 136              	.LVL12:
  58:uc_libc_dev/driver/max7219_dot_matrix.c ****     return pdPASS;
 137              		.loc 1 58 0
 138 0016 0120     		movs	r0, #1
 139 0018 08BD     		pop	{r3, pc}
 140              	.LVL13:
 141              	.L13:
  55:uc_libc_dev/driver/max7219_dot_matrix.c ****     if (limit>7) return errDEVICE_VALUE_OUT_OF_RANGE;
 142              		.loc 1 55 0
 143 001a 6FF49870 		mvn	r0, #304
 144              	.LVL14:
 145 001e 08BD     		pop	{r3, pc}
 146              	.LVL15:
 147              	.L14:
  56:uc_libc_dev/driver/max7219_dot_matrix.c ****    	max7219_Write(addr, REG_SCAN_LIMIT, limit);
 148              		.loc 1 56 0
 149 0020 0148     		ldr	r0, .L15+4
 150              	.LVL16:
  59:uc_libc_dev/driver/max7219_dot_matrix.c **** }
 151              		.loc 1 59 0
 152 0022 08BD     		pop	{r3, pc}
 153              	.L16:
 154              		.align	2
 155              	.L15:
 156 0024 00000000 		.word	.LANCHOR0
 157 0028 D0FEFFFF 		.word	-304
 158              		.cfi_endproc
 159              	.LFE2:
 161              		.section	.text.max7219_Shutdown,"ax",%progbits
 162              		.align	1
 163              		.global	max7219_Shutdown
 164              		.thumb
 165              		.thumb_func
 167              	max7219_Shutdown:
 168              	.LFB3:
  60:uc_libc_dev/driver/max7219_dot_matrix.c **** 
  61:uc_libc_dev/driver/max7219_dot_matrix.c **** //-------------------------------------------------------------------------------------------------
  62:uc_libc_dev/driver/max7219_dot_matrix.c **** // Descrição:	Tira o display no modo de desligado
  63:uc_libc_dev/driver/max7219_dot_matrix.c **** // Parametros	pdTRUE: Fa o desligamento do display
  64:uc_libc_dev/driver/max7219_dot_matrix.c **** //				pdFALSE: Reativa o display
  65:uc_libc_dev/driver/max7219_dot_matrix.c **** // Retorna: 	Nada
  66:uc_libc_dev/driver/max7219_dot_matrix.c **** //-------------------------------------------------------------------------------------------------
  67:uc_libc_dev/driver/max7219_dot_matrix.c **** int max7219_Shutdown(uint addr, u8 st) {
 169              		.loc 1 67 0
 170              		.cfi_startproc
 171              		@ args = 0, pretend = 0, frame = 0
 172              		@ frame_needed = 0, uses_anonymous_args = 0
 173              	.LVL17:
 174 0000 08B5     		push	{r3, lr}
 175              	.LCFI2:
 176              		.cfi_def_cfa_offset 8
 177              		.cfi_offset 3, -8
 178              		.cfi_offset 14, -4
  68:uc_libc_dev/driver/max7219_dot_matrix.c **** 	if (addr>=maxDevices) return errDEVICE_INVALID;
 179              		.loc 1 68 0
 180 0002 084B     		ldr	r3, .L22
 181 0004 1B78     		ldrb	r3, [r3]	@ zero_extendqisi2
 182 0006 8342     		cmp	r3, r0
 183 0008 08D9     		bls	.L20
  69:uc_libc_dev/driver/max7219_dot_matrix.c **** 	if (st) max7219_Write(addr, REG_SHUTDOWN, 0);	// put MAX7219 into "shutdown" mode
 184              		.loc 1 69 0
 185 000a 09B1     		cbz	r1, .L19
 186              	.LVL18:
 187              	.LBB4:
 188              	.LBB5:
 189 000c 0022     		movs	r2, #0
 190 000e 00E0     		b	.L21
 191              	.LVL19:
 192              	.L19:
 193              	.LBE5:
 194              	.LBE4:
  70:uc_libc_dev/driver/max7219_dot_matrix.c **** 	else max7219_Write(addr, REG_SHUTDOWN, 1);  	// put MAX7219 into "normal" mode
 195              		.loc 1 70 0
 196 0010 0122     		movs	r2, #1
 197              	.L21:
 198 0012 0C21     		movs	r1, #12
 199              	.LVL20:
 200 0014 FFF7FEFF 		bl	max7219_Write
 201              	.LVL21:
  71:uc_libc_dev/driver/max7219_dot_matrix.c **** 	return pdPASS;
 202              		.loc 1 71 0
 203 0018 0120     		movs	r0, #1
 204 001a 08BD     		pop	{r3, pc}
 205              	.LVL22:
 206              	.L20:
  68:uc_libc_dev/driver/max7219_dot_matrix.c **** 	if (st) max7219_Write(addr, REG_SHUTDOWN, 0);	// put MAX7219 into "shutdown" mode
 207              		.loc 1 68 0
 208 001c 6FF49870 		mvn	r0, #304
 209              	.LVL23:
  72:uc_libc_dev/driver/max7219_dot_matrix.c **** }
 210              		.loc 1 72 0
 211 0020 08BD     		pop	{r3, pc}
 212              	.L23:
 213 0022 00BF     		.align	2
 214              	.L22:
 215 0024 00000000 		.word	.LANCHOR0
 216              		.cfi_endproc
 217              	.LFE3:
 219              		.section	.text.max7219_DisplayTest,"ax",%progbits
 220              		.align	1
 221              		.global	max7219_DisplayTest
 222              		.thumb
 223              		.thumb_func
 225              	max7219_DisplayTest:
 226              	.LFB4:
  73:uc_libc_dev/driver/max7219_dot_matrix.c **** 
  74:uc_libc_dev/driver/max7219_dot_matrix.c **** //-------------------------------------------------------------------------------------------------
  75:uc_libc_dev/driver/max7219_dot_matrix.c **** // Descrição:	Inicia o procedimento de teste no display
  76:uc_libc_dev/driver/max7219_dot_matrix.c **** // Parametros	pdTRUE: Inicia o procedimento de auto teste
  77:uc_libc_dev/driver/max7219_dot_matrix.c **** //				pdFALSE: Desliga o procedimento de auto teste
  78:uc_libc_dev/driver/max7219_dot_matrix.c **** // Retorna: 	Nada
  79:uc_libc_dev/driver/max7219_dot_matrix.c **** //-------------------------------------------------------------------------------------------------
  80:uc_libc_dev/driver/max7219_dot_matrix.c **** int max7219_DisplayTest(uint addr, u8 st) {
 227              		.loc 1 80 0
 228              		.cfi_startproc
 229              		@ args = 0, pretend = 0, frame = 0
 230              		@ frame_needed = 0, uses_anonymous_args = 0
 231              	.LVL24:
 232 0000 08B5     		push	{r3, lr}
 233              	.LCFI3:
 234              		.cfi_def_cfa_offset 8
 235              		.cfi_offset 3, -8
 236              		.cfi_offset 14, -4
  81:uc_libc_dev/driver/max7219_dot_matrix.c ****   	if (addr>=maxDevices) return errDEVICE_INVALID;
 237              		.loc 1 81 0
 238 0002 084B     		ldr	r3, .L27
 239 0004 1B78     		ldrb	r3, [r3]	@ zero_extendqisi2
 240 0006 8342     		cmp	r3, r0
 241 0008 08D9     		bls	.L26
 242              	.LVL25:
  82:uc_libc_dev/driver/max7219_dot_matrix.c ****   	if (st > 1) st = 1;
  83:uc_libc_dev/driver/max7219_dot_matrix.c ****   	max7219_Write(addr, REG_DISPLAY_TEST, st);                 // put MAX7219 into "display test" mo
 243              		.loc 1 83 0
 244 000a 0129     		cmp	r1, #1
 245 000c 0A46     		mov	r2, r1
 246 000e 28BF     		it	cs
 247 0010 0122     		movcs	r2, #1
 248 0012 0F21     		movs	r1, #15
 249              	.LVL26:
 250 0014 FFF7FEFF 		bl	max7219_Write
 251              	.LVL27:
  84:uc_libc_dev/driver/max7219_dot_matrix.c ****   	return pdPASS;
 252              		.loc 1 84 0
 253 0018 0120     		movs	r0, #1
 254 001a 08BD     		pop	{r3, pc}
 255              	.LVL28:
 256              	.L26:
  81:uc_libc_dev/driver/max7219_dot_matrix.c ****   	if (addr>=maxDevices) return errDEVICE_INVALID;
 257              		.loc 1 81 0
 258 001c 6FF49870 		mvn	r0, #304
 259              	.LVL29:
  85:uc_libc_dev/driver/max7219_dot_matrix.c **** }
 260              		.loc 1 85 0
 261 0020 08BD     		pop	{r3, pc}
 262              	.L28:
 263 0022 00BF     		.align	2
 264              	.L27:
 265 0024 00000000 		.word	.LANCHOR0
 266              		.cfi_endproc
 267              	.LFE4:
 269              		.section	.text.max7219_SetBrightness,"ax",%progbits
 270              		.align	1
 271              		.global	max7219_SetBrightness
 272              		.thumb
 273              		.thumb_func
 275              	max7219_SetBrightness:
 276              	.LFB5:
  86:uc_libc_dev/driver/max7219_dot_matrix.c **** 
  87:uc_libc_dev/driver/max7219_dot_matrix.c **** //-------------------------------------------------------------------------------------------------
  88:uc_libc_dev/driver/max7219_dot_matrix.c **** // Descrição:	Ajusta a itensidade do display
  89:uc_libc_dev/driver/max7219_dot_matrix.c **** // Parametros	Brilho de 0 a 0xf
  90:uc_libc_dev/driver/max7219_dot_matrix.c **** // Retorna: 	Nada
  91:uc_libc_dev/driver/max7219_dot_matrix.c **** //-------------------------------------------------------------------------------------------------
  92:uc_libc_dev/driver/max7219_dot_matrix.c **** int max7219_SetBrightness(uint addr, u8 brightness) {
 277              		.loc 1 92 0
 278              		.cfi_startproc
 279              		@ args = 0, pretend = 0, frame = 0
 280              		@ frame_needed = 0, uses_anonymous_args = 0
 281              	.LVL30:
 282 0000 08B5     		push	{r3, lr}
 283              	.LCFI4:
 284              		.cfi_def_cfa_offset 8
 285              		.cfi_offset 3, -8
 286              		.cfi_offset 14, -4
  93:uc_libc_dev/driver/max7219_dot_matrix.c ****   	if (addr>=maxDevices) return errDEVICE_INVALID;
 287              		.loc 1 93 0
 288 0002 074B     		ldr	r3, .L32
 289 0004 1B78     		ldrb	r3, [r3]	@ zero_extendqisi2
 290 0006 8342     		cmp	r3, r0
 291 0008 06D9     		bls	.L31
 292              	.LVL31:
  94:uc_libc_dev/driver/max7219_dot_matrix.c ****   	brightness &= 0x0f;                                 // mask off extra bits
  95:uc_libc_dev/driver/max7219_dot_matrix.c ****   	max7219_Write(addr, REG_INTENSITY, brightness);           // set brightness
 293              		.loc 1 95 0
 294 000a 01F00F02 		and	r2, r1, #15
 295 000e 0A21     		movs	r1, #10
 296              	.LVL32:
 297 0010 FFF7FEFF 		bl	max7219_Write
 298              	.LVL33:
  96:uc_libc_dev/driver/max7219_dot_matrix.c ****   	return pdPASS;
 299              		.loc 1 96 0
 300 0014 0120     		movs	r0, #1
 301 0016 08BD     		pop	{r3, pc}
 302              	.LVL34:
 303              	.L31:
  93:uc_libc_dev/driver/max7219_dot_matrix.c ****   	if (addr>=maxDevices) return errDEVICE_INVALID;
 304              		.loc 1 93 0
 305 0018 6FF49870 		mvn	r0, #304
 306              	.LVL35:
  97:uc_libc_dev/driver/max7219_dot_matrix.c **** }
 307              		.loc 1 97 0
 308 001c 08BD     		pop	{r3, pc}
 309              	.L33:
 310 001e 00BF     		.align	2
 311              	.L32:
 312 0020 00000000 		.word	.LANCHOR0
 313              		.cfi_endproc
 314              	.LFE5:
 316              		.section	.text.max7219_Clear,"ax",%progbits
 317              		.align	1
 318              		.global	max7219_Clear
 319              		.thumb
 320              		.thumb_func
 322              	max7219_Clear:
 323              	.LFB6:
  98:uc_libc_dev/driver/max7219_dot_matrix.c **** 
  99:uc_libc_dev/driver/max7219_dot_matrix.c **** //-------------------------------------------------------------------------------------------------
 100:uc_libc_dev/driver/max7219_dot_matrix.c **** // Descrição:	Limpa todos os displays
 101:uc_libc_dev/driver/max7219_dot_matrix.c **** // Parametros	Nenhum
 102:uc_libc_dev/driver/max7219_dot_matrix.c **** // Retorna: 	Nada
 103:uc_libc_dev/driver/max7219_dot_matrix.c **** //-------------------------------------------------------------------------------------------------
 104:uc_libc_dev/driver/max7219_dot_matrix.c **** int max7219_Clear(uint addr) {
 324              		.loc 1 104 0
 325              		.cfi_startproc
 326              		@ args = 0, pretend = 0, frame = 0
 327              		@ frame_needed = 0, uses_anonymous_args = 0
 328              	.LVL36:
 329 0000 F8B5     		push	{r3, r4, r5, r6, r7, lr}
 330              	.LCFI5:
 331              		.cfi_def_cfa_offset 24
 332              		.cfi_offset 3, -24
 333              		.cfi_offset 4, -20
 334              		.cfi_offset 5, -16
 335              		.cfi_offset 6, -12
 336              		.cfi_offset 7, -8
 337              		.cfi_offset 14, -4
 105:uc_libc_dev/driver/max7219_dot_matrix.c **** 	if (addr>=maxDevices) return errDEVICE_INVALID;
 338              		.loc 1 105 0
 339 0002 0D4B     		ldr	r3, .L39
 104:uc_libc_dev/driver/max7219_dot_matrix.c **** 	if (addr>=maxDevices) return errDEVICE_INVALID;
 340              		.loc 1 104 0
 341 0004 0646     		mov	r6, r0
 342              		.loc 1 105 0
 343 0006 1B78     		ldrb	r3, [r3]	@ zero_extendqisi2
 344 0008 8342     		cmp	r3, r0
 345 000a 12D9     		bls	.L37
 346              	.LVL37:
 106:uc_libc_dev/driver/max7219_dot_matrix.c **** 	int offset=addr*8;
 107:uc_libc_dev/driver/max7219_dot_matrix.c ****   	u8 i; for (i=0; i<8; i++) {
 347              		.loc 1 107 0
 348 000c 0024     		movs	r4, #0
 108:uc_libc_dev/driver/max7219_dot_matrix.c ****    		moduleDisp[offset+i]=0;
 349              		.loc 1 108 0
 350 000e 2746     		mov	r7, r4
 351 0010 0A4D     		ldr	r5, .L39+4
 352 0012 05EBC005 		add	r5, r5, r0, lsl #3
 353 0016 013D     		subs	r5, r5, #1
 354              	.LVL38:
 355              	.L36:
 109:uc_libc_dev/driver/max7219_dot_matrix.c ****         max7219_Write(addr, i+1,moduleDisp[offset+i]);
 356              		.loc 1 109 0 discriminator 3
 357 0018 0134     		adds	r4, r4, #1
 358              	.LVL39:
 359 001a E4B2     		uxtb	r4, r4
 108:uc_libc_dev/driver/max7219_dot_matrix.c ****    		moduleDisp[offset+i]=0;
 360              		.loc 1 108 0 discriminator 3
 361 001c 05F8017F 		strb	r7, [r5, #1]!
 362              		.loc 1 109 0 discriminator 3
 363 0020 0022     		movs	r2, #0
 364 0022 2146     		mov	r1, r4
 365 0024 3046     		mov	r0, r6
 366 0026 FFF7FEFF 		bl	max7219_Write
 367              	.LVL40:
 107:uc_libc_dev/driver/max7219_dot_matrix.c ****    		moduleDisp[offset+i]=0;
 368              		.loc 1 107 0 discriminator 3
 369 002a 082C     		cmp	r4, #8
 370 002c F4D1     		bne	.L36
 110:uc_libc_dev/driver/max7219_dot_matrix.c ****     }
 111:uc_libc_dev/driver/max7219_dot_matrix.c ****   	return pdPASS;
 371              		.loc 1 111 0
 372 002e 0120     		movs	r0, #1
 373 0030 F8BD     		pop	{r3, r4, r5, r6, r7, pc}
 374              	.LVL41:
 375              	.L37:
 105:uc_libc_dev/driver/max7219_dot_matrix.c **** 	int offset=addr*8;
 376              		.loc 1 105 0
 377 0032 6FF49870 		mvn	r0, #304
 378              	.LVL42:
 112:uc_libc_dev/driver/max7219_dot_matrix.c **** }
 379              		.loc 1 112 0
 380 0036 F8BD     		pop	{r3, r4, r5, r6, r7, pc}
 381              	.LVL43:
 382              	.L40:
 383              		.align	2
 384              	.L39:
 385 0038 00000000 		.word	.LANCHOR0
 386 003c 00000000 		.word	.LANCHOR2
 387              		.cfi_endproc
 388              	.LFE6:
 390              		.section	.text.max7219_Init,"ax",%progbits
 391              		.align	1
 392              		.global	max7219_Init
 393              		.thumb
 394              		.thumb_func
 396              	max7219_Init:
 397              	.LFB1:
  35:uc_libc_dev/driver/max7219_dot_matrix.c **** 	if ( (nDevices < 1) || (nDevices > 8)) return errDEVICE_INVALID;
 398              		.loc 1 35 0
 399              		.cfi_startproc
 400              		@ args = 0, pretend = 0, frame = 0
 401              		@ frame_needed = 0, uses_anonymous_args = 0
 402              	.LVL44:
 403 0000 38B5     		push	{r3, r4, r5, lr}
 404              	.LCFI6:
 405              		.cfi_def_cfa_offset 16
 406              		.cfi_offset 3, -16
 407              		.cfi_offset 4, -12
 408              		.cfi_offset 5, -8
 409              		.cfi_offset 14, -4
  36:uc_libc_dev/driver/max7219_dot_matrix.c **** 	maxDevices = nDevices;
 410              		.loc 1 36 0
 411 0002 431E     		subs	r3, r0, #1
 412 0004 072B     		cmp	r3, #7
 413 0006 37D8     		bhi	.L46
  37:uc_libc_dev/driver/max7219_dot_matrix.c **** 	max7219_SetupPorts();	// Configurar os pinos de controle
 414              		.loc 1 37 0
 415 0008 1D4A     		ldr	r2, .L49
  38:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 416              		.loc 1 38 0
 417 000a 1E49     		ldr	r1, .L49+4
  37:uc_libc_dev/driver/max7219_dot_matrix.c **** 	max7219_SetupPorts();	// Configurar os pinos de controle
 418              		.loc 1 37 0
 419 000c 1070     		strb	r0, [r2]
  38:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 420              		.loc 1 38 0
 421 000e 0B68     		ldr	r3, [r1]
 422 0010 1546     		mov	r5, r2
 423 0012 43F48023 		orr	r3, r3, #262144
 424 0016 0B60     		str	r3, [r1]
 425 0018 0B6C     		ldr	r3, [r1, #64]
  40:uc_libc_dev/driver/max7219_dot_matrix.c **** 	for(x=0;x<maxDevices;x++) {
 426              		.loc 1 40 0
 427 001a 1B4A     		ldr	r2, .L49+8
  38:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 428              		.loc 1 38 0
 429 001c 43F00203 		orr	r3, r3, #2
 430 0020 0B64     		str	r3, [r1, #64]
 431              	.LVL45:
  40:uc_libc_dev/driver/max7219_dot_matrix.c **** 	for(x=0;x<maxDevices;x++) {
 432              		.loc 1 40 0
 433 0022 0023     		movs	r3, #0
 434 0024 1946     		mov	r1, r3
 435              	.LVL46:
 436              	.L43:
  40:uc_libc_dev/driver/max7219_dot_matrix.c **** 	for(x=0;x<maxDevices;x++) {
 437              		.loc 1 40 0 is_stmt 0 discriminator 3
 438 0026 9954     		strb	r1, [r3, r2]
 439 0028 0133     		adds	r3, r3, #1
 440              	.LVL47:
 441 002a 402B     		cmp	r3, #64
 442 002c FBD1     		bne	.L43
 443 002e 0024     		movs	r4, #0
 444              	.LVL48:
 445              	.L44:
  41:uc_libc_dev/driver/max7219_dot_matrix.c **** 		max7219_Write(x, REG_DISPLAY_TEST, 0);              // Wtihout test
 446              		.loc 1 41 0 is_stmt 1 discriminator 1
 447 0030 2B78     		ldrb	r3, [r5]	@ zero_extendqisi2
 448 0032 9C42     		cmp	r4, r3
 449 0034 1EDA     		bge	.L48
  42:uc_libc_dev/driver/max7219_dot_matrix.c **** 		max7219_SetScanLimit(x,7);							// Scanlimit is set to max on startup
 450              		.loc 1 42 0 discriminator 3
 451 0036 0022     		movs	r2, #0
 452 0038 2046     		mov	r0, r4
 453 003a 0F21     		movs	r1, #15
 454 003c FFF7FEFF 		bl	max7219_Write
 455              	.LVL49:
  43:uc_libc_dev/driver/max7219_dot_matrix.c **** 		max7219_Write(x, REG_DECODE, 0x00);                 // set to "no decode" for all digits
 456              		.loc 1 43 0 discriminator 3
 457 0040 0721     		movs	r1, #7
 458 0042 2046     		mov	r0, r4
 459 0044 FFF7FEFF 		bl	max7219_SetScanLimit
 460              	.LVL50:
  44:uc_libc_dev/driver/max7219_dot_matrix.c **** 		max7219_Shutdown(x, pdFALSE);                       // select normal operation (i.e. not shutdown
 461              		.loc 1 44 0 discriminator 3
 462 0048 0022     		movs	r2, #0
 463 004a 2046     		mov	r0, r4
 464 004c 0921     		movs	r1, #9
 465 004e FFF7FEFF 		bl	max7219_Write
 466              	.LVL51:
  45:uc_libc_dev/driver/max7219_dot_matrix.c **** 		max7219_DisplayTest(x, pdFALSE);                    // select normal operation (i.e. not test mod
 467              		.loc 1 45 0 discriminator 3
 468 0052 0021     		movs	r1, #0
 469 0054 2046     		mov	r0, r4
 470 0056 FFF7FEFF 		bl	max7219_Shutdown
 471              	.LVL52:
  46:uc_libc_dev/driver/max7219_dot_matrix.c **** 		max7219_Clear(x);                                   // clear all digits
 472              		.loc 1 46 0 discriminator 3
 473 005a 0021     		movs	r1, #0
 474 005c 2046     		mov	r0, r4
 475 005e FFF7FEFF 		bl	max7219_DisplayTest
 476              	.LVL53:
  47:uc_libc_dev/driver/max7219_dot_matrix.c **** 		max7219_SetBrightness(x, max7219_INTENSITY_MAX);    // set to maximum intensity
 477              		.loc 1 47 0 discriminator 3
 478 0062 2046     		mov	r0, r4
 479 0064 FFF7FEFF 		bl	max7219_Clear
 480              	.LVL54:
  48:uc_libc_dev/driver/max7219_dot_matrix.c **** 	}
 481              		.loc 1 48 0 discriminator 3
 482 0068 2046     		mov	r0, r4
 483 006a 0F21     		movs	r1, #15
 484 006c FFF7FEFF 		bl	max7219_SetBrightness
 485              	.LVL55:
  41:uc_libc_dev/driver/max7219_dot_matrix.c **** 		max7219_Write(x, REG_DISPLAY_TEST, 0);              // Wtihout test
 486              		.loc 1 41 0 discriminator 3
 487 0070 0134     		adds	r4, r4, #1
 488              	.LVL56:
 489 0072 DDE7     		b	.L44
 490              	.L48:
  51:uc_libc_dev/driver/max7219_dot_matrix.c **** }
 491              		.loc 1 51 0
 492 0074 0120     		movs	r0, #1
 493 0076 38BD     		pop	{r3, r4, r5, pc}
 494              	.LVL57:
 495              	.L46:
  36:uc_libc_dev/driver/max7219_dot_matrix.c **** 	maxDevices = nDevices;
 496              		.loc 1 36 0
 497 0078 6FF49870 		mvn	r0, #304
 498              	.LVL58:
  52:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 499              		.loc 1 52 0
 500 007c 38BD     		pop	{r3, r4, r5, pc}
 501              	.LVL59:
 502              	.L50:
 503 007e 00BF     		.align	2
 504              	.L49:
 505 0080 00000000 		.word	.LANCHOR0
 506 0084 00C00920 		.word	537509888
 507 0088 00000000 		.word	.LANCHOR2
 508              		.cfi_endproc
 509              	.LFE1:
 511              		.section	.text.max7219_SetLed,"ax",%progbits
 512              		.align	1
 513              		.global	max7219_SetLed
 514              		.thumb
 515              		.thumb_func
 517              	max7219_SetLed:
 518              	.LFB7:
 113:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 114:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 115:uc_libc_dev/driver/max7219_dot_matrix.c **** int max7219_SetLed(uint addr, uint row, uint column, int state) {
 519              		.loc 1 115 0
 520              		.cfi_startproc
 521              		@ args = 0, pretend = 0, frame = 0
 522              		@ frame_needed = 0, uses_anonymous_args = 0
 523              	.LVL60:
 524 0000 70B5     		push	{r4, r5, r6, lr}
 525              	.LCFI7:
 526              		.cfi_def_cfa_offset 16
 527              		.cfi_offset 4, -16
 528              		.cfi_offset 5, -12
 529              		.cfi_offset 6, -8
 530              		.cfi_offset 14, -4
 116:uc_libc_dev/driver/max7219_dot_matrix.c ****     if(addr>=maxDevices) return errDEVICE_INVALID;
 531              		.loc 1 116 0
 532 0002 124C     		ldr	r4, .L59
 533 0004 2478     		ldrb	r4, [r4]	@ zero_extendqisi2
 534 0006 8442     		cmp	r4, r0
 535 0008 1AD9     		bls	.L55
 117:uc_libc_dev/driver/max7219_dot_matrix.c ****     if((row>7) || (column>7)) return errDEVICE_VALUE_OUT_OF_RANGE;
 536              		.loc 1 117 0
 537 000a 0729     		cmp	r1, #7
 538 000c 1BD8     		bhi	.L57
 539              		.loc 1 117 0 is_stmt 0 discriminator 2
 540 000e 072A     		cmp	r2, #7
 541 0010 19D8     		bhi	.L57
 542              	.LVL61:
 118:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 119:uc_libc_dev/driver/max7219_dot_matrix.c ****     int offset;
 120:uc_libc_dev/driver/max7219_dot_matrix.c ****     u8 val=0x00;
 121:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 122:uc_libc_dev/driver/max7219_dot_matrix.c ****     offset=addr*8;
 123:uc_libc_dev/driver/max7219_dot_matrix.c ****     val= 0x80 >> column;
 543              		.loc 1 123 0 is_stmt 1
 544 0012 8024     		movs	r4, #128
 545 0014 44FA02F2 		asr	r2, r4, r2
 546              	.LVL62:
 122:uc_libc_dev/driver/max7219_dot_matrix.c ****     val= 0x80 >> column;
 547              		.loc 1 122 0
 548 0018 C500     		lsls	r5, r0, #3
 549              	.LVL63:
 550              		.loc 1 123 0
 551 001a D2B2     		uxtb	r2, r2
 552              	.LVL64:
 553 001c 4E19     		adds	r6, r1, r5
 554 001e 0C4C     		ldr	r4, .L59+4
 124:uc_libc_dev/driver/max7219_dot_matrix.c ****     if (state) moduleDisp[offset+row]=moduleDisp[offset+row]|val;
 555              		.loc 1 124 0
 556 0020 13B1     		cbz	r3, .L53
 557              		.loc 1 124 0 is_stmt 0 discriminator 1
 558 0022 A35D     		ldrb	r3, [r4, r6]	@ zero_extendqisi2
 559              	.LVL65:
 560 0024 1A43     		orrs	r2, r2, r3
 561              	.LVL66:
 562 0026 02E0     		b	.L58
 563              	.LVL67:
 564              	.L53:
 125:uc_libc_dev/driver/max7219_dot_matrix.c ****     else {
 126:uc_libc_dev/driver/max7219_dot_matrix.c ****         val=~val;
 127:uc_libc_dev/driver/max7219_dot_matrix.c ****         moduleDisp[offset+row]=moduleDisp[offset+row]&val;
 565              		.loc 1 127 0 is_stmt 1
 566 0028 A35D     		ldrb	r3, [r4, r6]	@ zero_extendqisi2
 567              	.LVL68:
 568 002a 23EA0202 		bic	r2, r3, r2
 569              	.LVL69:
 570              	.L58:
 571 002e A255     		strb	r2, [r4, r6]
 128:uc_libc_dev/driver/max7219_dot_matrix.c ****     }
 129:uc_libc_dev/driver/max7219_dot_matrix.c ****     max7219_Write(addr, row+1,moduleDisp[offset+row]);
 572              		.loc 1 129 0
 573 0030 4B1C     		adds	r3, r1, #1
 574 0032 2C44     		add	r4, r4, r5
 575 0034 625C     		ldrb	r2, [r4, r1]	@ zero_extendqisi2
 576 0036 D9B2     		uxtb	r1, r3
 577              	.LVL70:
 578 0038 FFF7FEFF 		bl	max7219_Write
 579              	.LVL71:
 130:uc_libc_dev/driver/max7219_dot_matrix.c ****     return pdPASS;
 580              		.loc 1 130 0
 581 003c 0120     		movs	r0, #1
 582 003e 70BD     		pop	{r4, r5, r6, pc}
 583              	.LVL72:
 584              	.L55:
 116:uc_libc_dev/driver/max7219_dot_matrix.c ****     if((row>7) || (column>7)) return errDEVICE_VALUE_OUT_OF_RANGE;
 585              		.loc 1 116 0
 586 0040 6FF49870 		mvn	r0, #304
 587              	.LVL73:
 588 0044 70BD     		pop	{r4, r5, r6, pc}
 589              	.LVL74:
 590              	.L57:
 117:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 591              		.loc 1 117 0
 592 0046 0348     		ldr	r0, .L59+8
 593              	.LVL75:
 131:uc_libc_dev/driver/max7219_dot_matrix.c **** }
 594              		.loc 1 131 0
 595 0048 70BD     		pop	{r4, r5, r6, pc}
 596              	.L60:
 597 004a 00BF     		.align	2
 598              	.L59:
 599 004c 00000000 		.word	.LANCHOR0
 600 0050 00000000 		.word	.LANCHOR2
 601 0054 D0FEFFFF 		.word	-304
 602              		.cfi_endproc
 603              	.LFE7:
 605              		.section	.text.max7219_SetRow,"ax",%progbits
 606              		.align	1
 607              		.global	max7219_SetRow
 608              		.thumb
 609              		.thumb_func
 611              	max7219_SetRow:
 612              	.LFB8:
 132:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 133:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 134:uc_libc_dev/driver/max7219_dot_matrix.c **** int max7219_SetRow(uint addr, uint row, u8 value) {
 613              		.loc 1 134 0
 614              		.cfi_startproc
 615              		@ args = 0, pretend = 0, frame = 0
 616              		@ frame_needed = 0, uses_anonymous_args = 0
 617              	.LVL76:
 618 0000 38B5     		push	{r3, r4, r5, lr}
 619              	.LCFI8:
 620              		.cfi_def_cfa_offset 16
 621              		.cfi_offset 3, -16
 622              		.cfi_offset 4, -12
 623              		.cfi_offset 5, -8
 624              		.cfi_offset 14, -4
 135:uc_libc_dev/driver/max7219_dot_matrix.c ****     if (addr>=maxDevices) return errDEVICE_INVALID;
 625              		.loc 1 135 0
 626 0002 0A4B     		ldr	r3, .L65
 627 0004 1B78     		ldrb	r3, [r3]	@ zero_extendqisi2
 628 0006 8342     		cmp	r3, r0
 629 0008 0BD9     		bls	.L63
 136:uc_libc_dev/driver/max7219_dot_matrix.c ****     if (row>7) return errDEVICE_VALUE_OUT_OF_RANGE;
 630              		.loc 1 136 0
 631 000a 0729     		cmp	r1, #7
 632 000c 0CD8     		bhi	.L64
 633              	.LVL77:
 137:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 138:uc_libc_dev/driver/max7219_dot_matrix.c ****     int offset;
 139:uc_libc_dev/driver/max7219_dot_matrix.c ****     offset=addr*8;
 140:uc_libc_dev/driver/max7219_dot_matrix.c ****     moduleDisp[offset+row]=value;
 634              		.loc 1 140 0
 635 000e 084B     		ldr	r3, .L65+4
 636 0010 03EBC003 		add	r3, r3, r0, lsl #3
 637 0014 5A54     		strb	r2, [r3, r1]
 141:uc_libc_dev/driver/max7219_dot_matrix.c ****     max7219_Write(addr, row+1,moduleDisp[offset+row]);
 638              		.loc 1 141 0
 639 0016 0131     		adds	r1, r1, #1
 640              	.LVL78:
 641 0018 C9B2     		uxtb	r1, r1
 642              	.LVL79:
 643 001a FFF7FEFF 		bl	max7219_Write
 644              	.LVL80:
 142:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 143:uc_libc_dev/driver/max7219_dot_matrix.c ****     return pdPASS;
 645              		.loc 1 143 0
 646 001e 0120     		movs	r0, #1
 647 0020 38BD     		pop	{r3, r4, r5, pc}
 648              	.LVL81:
 649              	.L63:
 135:uc_libc_dev/driver/max7219_dot_matrix.c ****     if (row>7) return errDEVICE_VALUE_OUT_OF_RANGE;
 650              		.loc 1 135 0
 651 0022 6FF49870 		mvn	r0, #304
 652              	.LVL82:
 653 0026 38BD     		pop	{r3, r4, r5, pc}
 654              	.LVL83:
 655              	.L64:
 136:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 656              		.loc 1 136 0
 657 0028 0248     		ldr	r0, .L65+8
 658              	.LVL84:
 144:uc_libc_dev/driver/max7219_dot_matrix.c **** }
 659              		.loc 1 144 0
 660 002a 38BD     		pop	{r3, r4, r5, pc}
 661              	.L66:
 662              		.align	2
 663              	.L65:
 664 002c 00000000 		.word	.LANCHOR0
 665 0030 00000000 		.word	.LANCHOR2
 666 0034 D0FEFFFF 		.word	-304
 667              		.cfi_endproc
 668              	.LFE8:
 670              		.section	.text.max7219_SetColumn,"ax",%progbits
 671              		.align	1
 672              		.global	max7219_SetColumn
 673              		.thumb
 674              		.thumb_func
 676              	max7219_SetColumn:
 677              	.LFB9:
 145:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 146:uc_libc_dev/driver/max7219_dot_matrix.c **** int max7219_SetColumn(uint addr, uint col, u8 value) {
 678              		.loc 1 146 0
 679              		.cfi_startproc
 680              		@ args = 0, pretend = 0, frame = 0
 681              		@ frame_needed = 0, uses_anonymous_args = 0
 682              	.LVL85:
 683 0000 F8B5     		push	{r3, r4, r5, r6, r7, lr}
 684              	.LCFI9:
 685              		.cfi_def_cfa_offset 24
 686              		.cfi_offset 3, -24
 687              		.cfi_offset 4, -20
 688              		.cfi_offset 5, -16
 689              		.cfi_offset 6, -12
 690              		.cfi_offset 7, -8
 691              		.cfi_offset 14, -4
 147:uc_libc_dev/driver/max7219_dot_matrix.c ****     if (addr>=maxDevices) return errDEVICE_INVALID;
 692              		.loc 1 147 0
 693 0002 0F4B     		ldr	r3, .L73
 146:uc_libc_dev/driver/max7219_dot_matrix.c ****     if (addr>=maxDevices) return errDEVICE_INVALID;
 694              		.loc 1 146 0
 695 0004 0546     		mov	r5, r0
 696              		.loc 1 147 0
 697 0006 1B78     		ldrb	r3, [r3]	@ zero_extendqisi2
 146:uc_libc_dev/driver/max7219_dot_matrix.c ****     if (addr>=maxDevices) return errDEVICE_INVALID;
 698              		.loc 1 146 0
 699 0008 0E46     		mov	r6, r1
 700              		.loc 1 147 0
 701 000a 8342     		cmp	r3, r0
 146:uc_libc_dev/driver/max7219_dot_matrix.c ****     if (addr>=maxDevices) return errDEVICE_INVALID;
 702              		.loc 1 146 0
 703 000c 1746     		mov	r7, r2
 704              		.loc 1 147 0
 705 000e 12D9     		bls	.L70
 148:uc_libc_dev/driver/max7219_dot_matrix.c ****     if (col>7) return errDEVICE_VALUE_OUT_OF_RANGE;
 706              		.loc 1 148 0
 707 0010 0729     		cmp	r1, #7
 708 0012 13D8     		bhi	.L71
 709 0014 0024     		movs	r4, #0
 710              	.LVL86:
 711              	.L69:
 149:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 150:uc_libc_dev/driver/max7219_dot_matrix.c ****     u8 val;
 151:uc_libc_dev/driver/max7219_dot_matrix.c ****     uint row; for(row=0;row<8;row++) {
 152:uc_libc_dev/driver/max7219_dot_matrix.c ****         val=value >> (7-row);
 712              		.loc 1 152 0 discriminator 3
 713 0016 C4F10703 		rsb	r3, r4, #7
 714 001a 47FA03F3 		asr	r3, r7, r3
 715              	.LVL87:
 153:uc_libc_dev/driver/max7219_dot_matrix.c ****         val=val & 0x01;
 154:uc_libc_dev/driver/max7219_dot_matrix.c ****         max7219_SetLed(addr, row, col, val);
 716              		.loc 1 154 0 discriminator 3
 717 001e 2146     		mov	r1, r4
 718 0020 03F00103 		and	r3, r3, #1
 719              	.LVL88:
 720 0024 3246     		mov	r2, r6
 721 0026 2846     		mov	r0, r5
 151:uc_libc_dev/driver/max7219_dot_matrix.c ****         val=value >> (7-row);
 722              		.loc 1 151 0 discriminator 3
 723 0028 0134     		adds	r4, r4, #1
 724              	.LVL89:
 725              		.loc 1 154 0 discriminator 3
 726 002a FFF7FEFF 		bl	max7219_SetLed
 727              	.LVL90:
 151:uc_libc_dev/driver/max7219_dot_matrix.c ****         val=value >> (7-row);
 728              		.loc 1 151 0 discriminator 3
 729 002e 082C     		cmp	r4, #8
 730 0030 F1D1     		bne	.L69
 155:uc_libc_dev/driver/max7219_dot_matrix.c ****     }
 156:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 157:uc_libc_dev/driver/max7219_dot_matrix.c ****    return pdPASS;
 731              		.loc 1 157 0
 732 0032 0120     		movs	r0, #1
 733 0034 F8BD     		pop	{r3, r4, r5, r6, r7, pc}
 734              	.LVL91:
 735              	.L70:
 147:uc_libc_dev/driver/max7219_dot_matrix.c ****     if (col>7) return errDEVICE_VALUE_OUT_OF_RANGE;
 736              		.loc 1 147 0
 737 0036 6FF49870 		mvn	r0, #304
 738              	.LVL92:
 739 003a F8BD     		pop	{r3, r4, r5, r6, r7, pc}
 740              	.LVL93:
 741              	.L71:
 148:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 742              		.loc 1 148 0
 743 003c 0148     		ldr	r0, .L73+4
 744              	.LVL94:
 158:uc_libc_dev/driver/max7219_dot_matrix.c **** }
 745              		.loc 1 158 0
 746 003e F8BD     		pop	{r3, r4, r5, r6, r7, pc}
 747              	.LVL95:
 748              	.L74:
 749              		.align	2
 750              	.L73:
 751 0040 00000000 		.word	.LANCHOR0
 752 0044 D0FEFFFF 		.word	-304
 753              		.cfi_endproc
 754              	.LFE9:
 756              		.section	.text.max7219_SetDigit,"ax",%progbits
 757              		.align	1
 758              		.global	max7219_SetDigit
 759              		.thumb
 760              		.thumb_func
 762              	max7219_SetDigit:
 763              	.LFB10:
 159:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 160:uc_libc_dev/driver/max7219_dot_matrix.c **** /*
 161:uc_libc_dev/driver/max7219_dot_matrix.c ****  * Segments to be switched on for characters and digits on
 162:uc_libc_dev/driver/max7219_dot_matrix.c ****  * 7-Segment Displays
 163:uc_libc_dev/driver/max7219_dot_matrix.c ****  */
 164:uc_libc_dev/driver/max7219_dot_matrix.c **** const u8 charTable [] = {
 165:uc_libc_dev/driver/max7219_dot_matrix.c ****     0b01111110,0b00110000,0b01101101,0b01111001,0b00110011,0b01011011,0b01011111,0b01110000,
 166:uc_libc_dev/driver/max7219_dot_matrix.c ****     0b01111111,0b01111011,0b01110111,0b00011111,0b00001101,0b00111101,0b01001111,0b01000111,
 167:uc_libc_dev/driver/max7219_dot_matrix.c ****     0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,
 168:uc_libc_dev/driver/max7219_dot_matrix.c ****     0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,
 169:uc_libc_dev/driver/max7219_dot_matrix.c ****     0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,
 170:uc_libc_dev/driver/max7219_dot_matrix.c ****     0b00000000,0b00000000,0b00000000,0b00000000,0b10000000,0b00000001,0b10000000,0b00000000,
 171:uc_libc_dev/driver/max7219_dot_matrix.c ****     0b01111110,0b00110000,0b01101101,0b01111001,0b00110011,0b01011011,0b01011111,0b01110000,
 172:uc_libc_dev/driver/max7219_dot_matrix.c ****     0b01111111,0b01111011,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,
 173:uc_libc_dev/driver/max7219_dot_matrix.c ****     0b00000000,0b01110111,0b00011111,0b00001101,0b00111101,0b01001111,0b01000111,0b00000000,
 174:uc_libc_dev/driver/max7219_dot_matrix.c ****     0b00110111,0b00000000,0b00000000,0b00000000,0b00001110,0b00000000,0b00000000,0b00000000,
 175:uc_libc_dev/driver/max7219_dot_matrix.c ****     0b01100111,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,
 176:uc_libc_dev/driver/max7219_dot_matrix.c ****     0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00001000,
 177:uc_libc_dev/driver/max7219_dot_matrix.c ****     0b00000000,0b01110111,0b00011111,0b00001101,0b00111101,0b01001111,0b01000111,0b00000000,
 178:uc_libc_dev/driver/max7219_dot_matrix.c ****     0b00110111,0b00000000,0b00000000,0b00000000,0b00001110,0b00000000,0b00010101,0b00011101,
 179:uc_libc_dev/driver/max7219_dot_matrix.c ****     0b01100111,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,
 180:uc_libc_dev/driver/max7219_dot_matrix.c ****     0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000
 181:uc_libc_dev/driver/max7219_dot_matrix.c **** };
 182:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 183:uc_libc_dev/driver/max7219_dot_matrix.c **** int max7219_SetDigit(uint addr, int digit, u8 value, u8 dp) {
 764              		.loc 1 183 0
 765              		.cfi_startproc
 766              		@ args = 0, pretend = 0, frame = 0
 767              		@ frame_needed = 0, uses_anonymous_args = 0
 768              	.LVL96:
 769 0000 38B5     		push	{r3, r4, r5, lr}
 770              	.LCFI10:
 771              		.cfi_def_cfa_offset 16
 772              		.cfi_offset 3, -16
 773              		.cfi_offset 4, -12
 774              		.cfi_offset 5, -8
 775              		.cfi_offset 14, -4
 184:uc_libc_dev/driver/max7219_dot_matrix.c ****     if (addr>=maxDevices) return errDEVICE_INVALID;
 776              		.loc 1 184 0
 777 0002 0E4C     		ldr	r4, .L84
 778 0004 2478     		ldrb	r4, [r4]	@ zero_extendqisi2
 779 0006 8442     		cmp	r4, r0
 780 0008 12D9     		bls	.L78
 185:uc_libc_dev/driver/max7219_dot_matrix.c **** 	if ( (digit<0) || (digit>7) || (value>15)) return errDEVICE_VALUE_OUT_OF_RANGE;
 781              		.loc 1 185 0
 782 000a 0729     		cmp	r1, #7
 783 000c 13D8     		bhi	.L80
 784              		.loc 1 185 0 is_stmt 0 discriminator 2
 785 000e 0F2A     		cmp	r2, #15
 786 0010 11D8     		bhi	.L80
 186:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 187:uc_libc_dev/driver/max7219_dot_matrix.c ****     int offset = addr*8;
 188:uc_libc_dev/driver/max7219_dot_matrix.c ****     u8 v = charTable[value];
 787              		.loc 1 188 0 is_stmt 1
 788 0012 0B4D     		ldr	r5, .L84+4
 187:uc_libc_dev/driver/max7219_dot_matrix.c ****     u8 v = charTable[value];
 789              		.loc 1 187 0
 790 0014 C400     		lsls	r4, r0, #3
 791              	.LVL97:
 792              		.loc 1 188 0
 793 0016 AA5C     		ldrb	r2, [r5, r2]	@ zero_extendqisi2
 794              	.LVL98:
 189:uc_libc_dev/driver/max7219_dot_matrix.c ****     if(dp) v |= 0x80;
 795              		.loc 1 189 0
 796 0018 0BB1     		cbz	r3, .L77
 797              		.loc 1 189 0 is_stmt 0 discriminator 1
 798 001a 42F08002 		orr	r2, r2, #128
 799              	.LVL99:
 800              	.L77:
 190:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 191:uc_libc_dev/driver/max7219_dot_matrix.c ****     moduleDisp[offset+digit]=v;
 801              		.loc 1 191 0 is_stmt 1
 802 001e 094B     		ldr	r3, .L84+8
 803              	.LVL100:
 804 0020 2344     		add	r3, r3, r4
 805 0022 5A54     		strb	r2, [r3, r1]
 192:uc_libc_dev/driver/max7219_dot_matrix.c ****     max7219_Write(addr, digit+1,v);
 806              		.loc 1 192 0
 807 0024 0131     		adds	r1, r1, #1
 808              	.LVL101:
 809 0026 C9B2     		uxtb	r1, r1
 810              	.LVL102:
 811 0028 FFF7FEFF 		bl	max7219_Write
 812              	.LVL103:
 193:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 194:uc_libc_dev/driver/max7219_dot_matrix.c ****     return pdPASS;
 813              		.loc 1 194 0
 814 002c 0120     		movs	r0, #1
 815 002e 38BD     		pop	{r3, r4, r5, pc}
 816              	.LVL104:
 817              	.L78:
 184:uc_libc_dev/driver/max7219_dot_matrix.c **** 	if ( (digit<0) || (digit>7) || (value>15)) return errDEVICE_VALUE_OUT_OF_RANGE;
 818              		.loc 1 184 0
 819 0030 6FF49870 		mvn	r0, #304
 820              	.LVL105:
 821 0034 38BD     		pop	{r3, r4, r5, pc}
 822              	.LVL106:
 823              	.L80:
 185:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 824              		.loc 1 185 0
 825 0036 0448     		ldr	r0, .L84+12
 826              	.LVL107:
 195:uc_libc_dev/driver/max7219_dot_matrix.c **** }
 827              		.loc 1 195 0
 828 0038 38BD     		pop	{r3, r4, r5, pc}
 829              	.LVL108:
 830              	.L85:
 831 003a 00BF     		.align	2
 832              	.L84:
 833 003c 00000000 		.word	.LANCHOR0
 834 0040 00000000 		.word	.LANCHOR3
 835 0044 00000000 		.word	.LANCHOR2
 836 0048 D0FEFFFF 		.word	-304
 837              		.cfi_endproc
 838              	.LFE10:
 840              		.section	.text.max7219_SetChar,"ax",%progbits
 841              		.align	1
 842              		.global	max7219_SetChar
 843              		.thumb
 844              		.thumb_func
 846              	max7219_SetChar:
 847              	.LFB11:
 196:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 197:uc_libc_dev/driver/max7219_dot_matrix.c **** // imprime um valor no display no formato 7seg
 198:uc_libc_dev/driver/max7219_dot_matrix.c **** // addr modulo max7219 a ser acessado, começando de 0 ao máximo
 199:uc_libc_dev/driver/max7219_dot_matrix.c **** // digit: digito do módulo
 200:uc_libc_dev/driver/max7219_dot_matrix.c **** // value: valor em ascii
 201:uc_libc_dev/driver/max7219_dot_matrix.c **** // dp: Sinaliza para ligar ou não o ponto decimal
 202:uc_libc_dev/driver/max7219_dot_matrix.c **** int max7219_SetChar(int addr, char value) {
 848              		.loc 1 202 0
 849              		.cfi_startproc
 850              		@ args = 0, pretend = 0, frame = 0
 851              		@ frame_needed = 0, uses_anonymous_args = 0
 852              		@ link register save eliminated.
 853              	.LVL109:
 203:uc_libc_dev/driver/max7219_dot_matrix.c **** //    if (addr>=maxDevices) return errDEVICE_INVALID;
 204:uc_libc_dev/driver/max7219_dot_matrix.c **** //
 205:uc_libc_dev/driver/max7219_dot_matrix.c **** //    int offset=addr*8;
 206:uc_libc_dev/driver/max7219_dot_matrix.c **** //    u8 index=(u8)value;
 207:uc_libc_dev/driver/max7219_dot_matrix.c **** //    if(index >127) index=32; // no defined beyond index 127, so we use the space char
 208:uc_libc_dev/driver/max7219_dot_matrix.c **** //    u8 v = charTable[index];
 209:uc_libc_dev/driver/max7219_dot_matrix.c **** //    if(dp) v|=0b10000000;
 210:uc_libc_dev/driver/max7219_dot_matrix.c **** //
 211:uc_libc_dev/driver/max7219_dot_matrix.c **** //    moduleDisp[offset+digit]=v;
 212:uc_libc_dev/driver/max7219_dot_matrix.c **** //    max7219_Write(addr, digit+1,v);
 213:uc_libc_dev/driver/max7219_dot_matrix.c **** 
 214:uc_libc_dev/driver/max7219_dot_matrix.c ****     return pdPASS;
 215:uc_libc_dev/driver/max7219_dot_matrix.c **** }
 854              		.loc 1 215 0
 855 0000 0120     		movs	r0, #1
 856              	.LVL110:
 857 0002 7047     		bx	lr
 858              		.cfi_endproc
 859              	.LFE11:
 861              		.global	charTable
 862              		.section	.bss.moduleDisp,"aw",%nobits
 863              		.set	.LANCHOR2,. + 0
 866              	moduleDisp:
 867 0000 00000000 		.space	64
 867      00000000 
 867      00000000 
 867      00000000 
 867      00000000 
 868              		.section	.bss.spidata,"aw",%nobits
 869              		.set	.LANCHOR1,. + 0
 872              	spidata:
 873 0000 00000000 		.space	16
 873      00000000 
 873      00000000 
 873      00000000 
 874              		.section	.rodata.charTable,"a",%progbits
 875              		.set	.LANCHOR3,. + 0
 878              	charTable:
 879 0000 7E       		.byte	126
 880 0001 30       		.byte	48
 881 0002 6D       		.byte	109
 882 0003 79       		.byte	121
 883 0004 33       		.byte	51
 884 0005 5B       		.byte	91
 885 0006 5F       		.byte	95
 886 0007 70       		.byte	112
 887 0008 7F       		.byte	127
 888 0009 7B       		.byte	123
 889 000a 77       		.byte	119
 890 000b 1F       		.byte	31
 891 000c 0D       		.byte	13
 892 000d 3D       		.byte	61
 893 000e 4F       		.byte	79
 894 000f 47       		.byte	71
 895 0010 00       		.byte	0
 896 0011 00       		.byte	0
 897 0012 00       		.byte	0
 898 0013 00       		.byte	0
 899 0014 00       		.byte	0
 900 0015 00       		.byte	0
 901 0016 00       		.byte	0
 902 0017 00       		.byte	0
 903 0018 00       		.byte	0
 904 0019 00       		.byte	0
 905 001a 00       		.byte	0
 906 001b 00       		.byte	0
 907 001c 00       		.byte	0
 908 001d 00       		.byte	0
 909 001e 00       		.byte	0
 910 001f 00       		.byte	0
 911 0020 00       		.byte	0
 912 0021 00       		.byte	0
 913 0022 00       		.byte	0
 914 0023 00       		.byte	0
 915 0024 00       		.byte	0
 916 0025 00       		.byte	0
 917 0026 00       		.byte	0
 918 0027 00       		.byte	0
 919 0028 00       		.byte	0
 920 0029 00       		.byte	0
 921 002a 00       		.byte	0
 922 002b 00       		.byte	0
 923 002c 80       		.byte	-128
 924 002d 01       		.byte	1
 925 002e 80       		.byte	-128
 926 002f 00       		.byte	0
 927 0030 7E       		.byte	126
 928 0031 30       		.byte	48
 929 0032 6D       		.byte	109
 930 0033 79       		.byte	121
 931 0034 33       		.byte	51
 932 0035 5B       		.byte	91
 933 0036 5F       		.byte	95
 934 0037 70       		.byte	112
 935 0038 7F       		.byte	127
 936 0039 7B       		.byte	123
 937 003a 00       		.byte	0
 938 003b 00       		.byte	0
 939 003c 00       		.byte	0
 940 003d 00       		.byte	0
 941 003e 00       		.byte	0
 942 003f 00       		.byte	0
 943 0040 00       		.byte	0
 944 0041 77       		.byte	119
 945 0042 1F       		.byte	31
 946 0043 0D       		.byte	13
 947 0044 3D       		.byte	61
 948 0045 4F       		.byte	79
 949 0046 47       		.byte	71
 950 0047 00       		.byte	0
 951 0048 37       		.byte	55
 952 0049 00       		.byte	0
 953 004a 00       		.byte	0
 954 004b 00       		.byte	0
 955 004c 0E       		.byte	14
 956 004d 00       		.byte	0
 957 004e 00       		.byte	0
 958 004f 00       		.byte	0
 959 0050 67       		.byte	103
 960 0051 00       		.byte	0
 961 0052 00       		.byte	0
 962 0053 00       		.byte	0
 963 0054 00       		.byte	0
 964 0055 00       		.byte	0
 965 0056 00       		.byte	0
 966 0057 00       		.byte	0
 967 0058 00       		.byte	0
 968 0059 00       		.byte	0
 969 005a 00       		.byte	0
 970 005b 00       		.byte	0
 971 005c 00       		.byte	0
 972 005d 00       		.byte	0
 973 005e 00       		.byte	0
 974 005f 08       		.byte	8
 975 0060 00       		.byte	0
 976 0061 77       		.byte	119
 977 0062 1F       		.byte	31
 978 0063 0D       		.byte	13
 979 0064 3D       		.byte	61
 980 0065 4F       		.byte	79
 981 0066 47       		.byte	71
 982 0067 00       		.byte	0
 983 0068 37       		.byte	55
 984 0069 00       		.byte	0
 985 006a 00       		.byte	0
 986 006b 00       		.byte	0
 987 006c 0E       		.byte	14
 988 006d 00       		.byte	0
 989 006e 15       		.byte	21
 990 006f 1D       		.byte	29
 991 0070 67       		.byte	103
 992 0071 00       		.byte	0
 993 0072 00       		.byte	0
 994 0073 00       		.byte	0
 995 0074 00       		.byte	0
 996 0075 00       		.byte	0
 997 0076 00       		.byte	0
 998 0077 00       		.byte	0
 999 0078 00       		.byte	0
 1000 0079 00       		.byte	0
 1001 007a 00       		.byte	0
 1002 007b 00       		.byte	0
 1003 007c 00       		.byte	0
 1004 007d 00       		.byte	0
 1005 007e 00       		.byte	0
 1006 007f 00       		.byte	0
 1007              		.section	.bss.maxDevices,"aw",%nobits
 1008              		.set	.LANCHOR0,. + 0
 1011              	maxDevices:
 1012 0000 00       		.space	1
 1013              		.text
 1014              	.Letext0:
 1015              		.file 2 "uc_libc_dev/_libdef/uc_libdefs.h"
 1016              		.file 3 "uc_libc_dev/_arch/arm_lpc/spi/ssp1.h"
DEFINED SYMBOLS
                            *ABS*:00000000 max7219_dot_matrix.c
D:\_temp\_windows\ccEluEne.s:20     .text.max7219_Write:00000000 $t
D:\_temp\_windows\ccEluEne.s:24     .text.max7219_Write:00000000 max7219_Write
D:\_temp\_windows\ccEluEne.s:98     .text.max7219_Write:00000044 $d
D:\_temp\_windows\ccEluEne.s:106    .text.max7219_SetScanLimit:00000000 $t
D:\_temp\_windows\ccEluEne.s:111    .text.max7219_SetScanLimit:00000000 max7219_SetScanLimit
D:\_temp\_windows\ccEluEne.s:156    .text.max7219_SetScanLimit:00000024 $d
D:\_temp\_windows\ccEluEne.s:162    .text.max7219_Shutdown:00000000 $t
D:\_temp\_windows\ccEluEne.s:167    .text.max7219_Shutdown:00000000 max7219_Shutdown
D:\_temp\_windows\ccEluEne.s:215    .text.max7219_Shutdown:00000024 $d
D:\_temp\_windows\ccEluEne.s:220    .text.max7219_DisplayTest:00000000 $t
D:\_temp\_windows\ccEluEne.s:225    .text.max7219_DisplayTest:00000000 max7219_DisplayTest
D:\_temp\_windows\ccEluEne.s:265    .text.max7219_DisplayTest:00000024 $d
D:\_temp\_windows\ccEluEne.s:270    .text.max7219_SetBrightness:00000000 $t
D:\_temp\_windows\ccEluEne.s:275    .text.max7219_SetBrightness:00000000 max7219_SetBrightness
D:\_temp\_windows\ccEluEne.s:312    .text.max7219_SetBrightness:00000020 $d
D:\_temp\_windows\ccEluEne.s:317    .text.max7219_Clear:00000000 $t
D:\_temp\_windows\ccEluEne.s:322    .text.max7219_Clear:00000000 max7219_Clear
D:\_temp\_windows\ccEluEne.s:385    .text.max7219_Clear:00000038 $d
D:\_temp\_windows\ccEluEne.s:391    .text.max7219_Init:00000000 $t
D:\_temp\_windows\ccEluEne.s:396    .text.max7219_Init:00000000 max7219_Init
D:\_temp\_windows\ccEluEne.s:505    .text.max7219_Init:00000080 $d
D:\_temp\_windows\ccEluEne.s:512    .text.max7219_SetLed:00000000 $t
D:\_temp\_windows\ccEluEne.s:517    .text.max7219_SetLed:00000000 max7219_SetLed
D:\_temp\_windows\ccEluEne.s:599    .text.max7219_SetLed:0000004c $d
D:\_temp\_windows\ccEluEne.s:606    .text.max7219_SetRow:00000000 $t
D:\_temp\_windows\ccEluEne.s:611    .text.max7219_SetRow:00000000 max7219_SetRow
D:\_temp\_windows\ccEluEne.s:664    .text.max7219_SetRow:0000002c $d
D:\_temp\_windows\ccEluEne.s:671    .text.max7219_SetColumn:00000000 $t
D:\_temp\_windows\ccEluEne.s:676    .text.max7219_SetColumn:00000000 max7219_SetColumn
D:\_temp\_windows\ccEluEne.s:751    .text.max7219_SetColumn:00000040 $d
D:\_temp\_windows\ccEluEne.s:757    .text.max7219_SetDigit:00000000 $t
D:\_temp\_windows\ccEluEne.s:762    .text.max7219_SetDigit:00000000 max7219_SetDigit
D:\_temp\_windows\ccEluEne.s:833    .text.max7219_SetDigit:0000003c $d
D:\_temp\_windows\ccEluEne.s:841    .text.max7219_SetChar:00000000 $t
D:\_temp\_windows\ccEluEne.s:846    .text.max7219_SetChar:00000000 max7219_SetChar
D:\_temp\_windows\ccEluEne.s:878    .rodata.charTable:00000000 charTable
D:\_temp\_windows\ccEluEne.s:866    .bss.moduleDisp:00000000 moduleDisp
D:\_temp\_windows\ccEluEne.s:867    .bss.moduleDisp:00000000 $d
D:\_temp\_windows\ccEluEne.s:872    .bss.spidata:00000000 spidata
D:\_temp\_windows\ccEluEne.s:873    .bss.spidata:00000000 $d
D:\_temp\_windows\ccEluEne.s:1011   .bss.maxDevices:00000000 maxDevices
D:\_temp\_windows\ccEluEne.s:1012   .bss.maxDevices:00000000 $d
                     .debug_frame:00000010 $d

UNDEFINED SYMBOLS
ssp1_TransferByte
